La cuestión
Estoy intentando actualizar de Angular V9 a V11 y tengo bastantes problemas con los siguientes errores
Namespace node_module/@angular/core/core has no exported member ɵɵFactoryDeclaration Namespace node_module/@angular/core/core has no exported member ɵɵInjectorDeclaration Namespace node_module/@angular/core/core has no exported member ɵɵNgModuleDeclaration Namespace node_module/@angular/core/core has no exported member ɵɵɵComponentDeclaration
pero no estoy completamente seguro de lo que significa y cómo podría solucionarlo.
lo que probé
He analizado un problema similar: Ng serve throwing @angular/core/core no tiene un miembro exportado 'eeFactoryDef', que fue el único rastro que pude encontrar de este problema, pero realmente no me ha ayudado.
Intenté eliminar toda mi carpeta node_modules y reinstalar las dependencias de npm con npm i . npm ci también. También intenté agregar
"@angular/core/*": [ "./node_modules/@angular/core/*" ]O
"@angular/*": [ "./node_modules/@angular/*" ] a mi tsconfig.json , pero eso tampoco ayudó.
Cuál creo que es el problema
No tengo idea de esto, pero creo que algo anda mal con las rutas de mis dependencias de NPM, ya que se refiere a @angular/core/core , pero no existe esa carpeta en mis node_modules .
Si voy al archivo node_modules/@angular/core/core.d.ts , que creo que es la ruta /core/core , aunque no estoy seguro de esto, también veo el mismo error allí, lo que me confunde aún más porque pensé que el problema sería entre Angular y las dependencias, pero no dentro de Angular en sí.
Paquete.json
{ "name": "WorthaShot", "version": "0.0.3", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "build:prod": "ng build --prod", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "~12.0.0-next.7", "@angular/cdk": "^11.2.7", "@angular/common": "~12.0.0-next.7", "@angular/compiler": "~12.0.0-next.7", "@angular/core": "~11.2.8", "@angular/fire": "^6.1.4", "@angular/flex-layout": "^10.0.0-beta.32", "@angular/forms": "~12.0.0-next.7", "@angular/material": "^11.2.7", "@angular/platform-browser": "~12.0.0-next.7", "@angular/platform-browser-dynamic": "~12.0.0-next.7", "@angular/router": "~12.0.0-next.7", "@angular/service-worker": "~12.0.0-next.7", "@fortawesome/angular-fontawesome": "^0.8.2", "@fortawesome/fontawesome-common-types": "^0.2.35", "@fortawesome/fontawesome-svg-core": "^1.2.35", "@fortawesome/free-brands-svg-icons": "^5.15.3", "@fortawesome/free-solid-svg-icons": "^5.15.3", "@ngbmodule/material-carousel": "^0.7.1", "@ngx-meta/core": "^9.0.0", "@ngx-translate/core": "^13.0.0", "@ngx-translate/http-loader": "^6.0.0", "firebase": "^8.3.2", "flag-icon-css": "^3.5.0", "guid-typescript": "^1.0.9", "ngx-color-picker": "^10.1.0", "ngx-image-compress": "^8.0.4", "ngx-markdown": "^10.1.1", "ngx-sharebuttons": "^8.0.5", "ngx-spinner": "^10.0.1", "ngx-toastr": "^13.2.1", "rxjs": "~6.6.7", "tslib": "^2.2.0", "zone.js": "~0.10.2" }, "devDependencies": { "@angular-devkit/build-angular": "^0.1102.7", "@angular/cli": "~11.2.7", "@angular/compiler-cli": "~12.0.0-next.7", "@angular/language-service": "~12.0.0-next.7", "@types/jasmine": "~3.6.0", "@types/jasminewd2": "~2.0.3", "@types/node": "^14.14.37", "codelyzer": "^6.0.1", "jasmine-core": "~3.6.0", "jasmine-spec-reporter": "~5.0.0", "karma": "~6.3.2", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.5.0", "protractor": "~7.0.0", "ts-node": "~8.10.2", "tslint": "~6.1.3", "typescript": "^4.2.3" } }¿Qué me falta o no entiendo aquí?
Entonces, dediqué algunas horas a esto en los últimos días y, aunque hay muchas respuestas útiles aquí, pensé en contribuir. Por el error en sí, es obvio que esto es principalmente un problema con la inyección de dependencia. Muchos paquetes de Angular se rompen a medida que actualizamos las versiones. Para mí, esto ocurrió al actualizar los módulos de Firebase.
Angular cambia la forma en que importa y lee módulos en todas las versiones, así como las ubicaciones de los módulos, lo que causa este problema. @angular/localize es definitivamente un módulo útil.
Además, sobre el tema de firebase: en realidad no está bien documentado en ninguna parte, pero angularfire2 y @angular/fire no pueden funcionar juntos y @angular/fire es donde ahora reside angularFire, como se puede ver al instalar el paquete: 
La solución más fácil que encuentro es ubicar el archivo de error (el código VS proporcionará un enlace al archivo donde aparece el error), luego identifique la dependencia culpable, ahora elimine de package.json o actualice la dependencia para corregir el error. y recuerda hacer
instalar npm
si lo borras.
El motivo de este error es que su biblioteca no está actualizada.
Compruebe los archivos app.module.ts .
Retire en orden y luego instale la nueva muestra.
Para este error:
"Namespace node_module/@angular/core/core no tiene un miembro exportado ɵɵFactoryDeclaration", "Namespace node_module/@angular/core/core no tiene un miembro exportado ɵɵInjectorDeclaration"
Deberías reemplazar esto:
static ɵfac: i0.ɵɵFactoryDef < ScreenTrackingService, [null, { optional: true; }, { optional: true; }, null, { optional: true; }] > ;Con este:
static ɵprov: i0.ɵɵInjectableDef<ScreenTrackingService>;en el componente ScreenTrackingService.
Recibí este error incluso sin una actualización. Obtuve con "@angular/core": "~9.1.1" con Node v12.16.2 y npm 4.0.2 . Ocurría a partir de componentes primeNg. Actualicé al node: '14.17.0' y npm a npm: '6.14.13' , creé una nueva aplicación angular, reinstalé todas las dependencias, incluido primeNg, agregué todo el código del proyecto actual, volví a compilar y el error desapareció.
así que me encontré con este problema mientras hacía un tutorial sobre FireBase
Lo que el tutorial sugirió que hiciera fue esto:
Al hacer esto, también tuve que habilitar allowSyntheticDefaultImports en el archivo tsConfig (en las opciones del compilador, "allowSyntheticDefaultImports": verdadero).
Esto solucionó mi problema.
En caso de que tenga el problema después de haber instalado primeng, tenga en cuenta que la última versión de primeng (12.0.0-rc.1) no funciona con la última versión de angular. Necesitas instalar una versión anterior de primeng, ¡para mí 11.4 funcionó perfectamente!
npm i primeng@11.4.2Estoy enfrentando el mismo problema.
Este enlace podría ayudar.
Estos son los pasos en la guía de actualización oficial: Si depende de la localización, primero ejecute este comando:
ng add @angular/localizeY haga que la localización funcione en su código con las refactorizaciones necesarias para $localize()
ng update @angular/core@10 @angular/cli@10 ng update @angular/core@11 @angular/cli@11Actualizar a mecanografiado 4